package com.hgyc.mom.core.domain;

import lombok.Data;

import java.util.Map;

/**
 * 存储TableDict注解数据
 * @author fwj
 * @since 2024/9/28
 */
@Data
public class TableDictDto {
    /**
     * 字段名称
     */
    private String fieldName;

    /**
     * 关联表
     */
    private String table;

    /**
     * 关联字段
     */
    private String key;

    /**
     * 查询值
     */
    private String fieldValue;

    /**
     * 查询字段
     */
    private Map<String,String> column;

    /**
     * 查询字段值
     */
    private String columnValue;

    // 用于基于 table, key, column, fieldValue 判断相等
    @Override
    public int hashCode() {
        return (table + key + column + fieldValue).hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        TableDictDto that = (TableDictDto) obj;
        return table.equals(that.table) && key.equals(that.key) &&
                column.equals(that.column) && fieldValue.equals(that.fieldValue);
    }

    /**
     * 获取转换名称
     * 例如：fieldName为typeId, column为name，key为id, 则转换名为typeName
     * @return
     */
    public String getTranslateName() {
        return null;
    }
}
